Applications of feature tracking include the generation of high quality facial animation as well as the efficient compression of image data for video conferencing. In general, features are salient parts of an object. Features may be defined by and modeled as a group of spatially-connected feature points in three-dimensional (3D) space. Tracking features in 3D space may be achieved by tracking the images of their corresponding features points in a video sequence. Namely, the images are the two-dimensional (2D) projections of the 3D feature points onto the image plane of the video camera. As the position of the object changes in 3D, the positions of its features will change in the video sequence. One task of tracking is to determine a global 3D transform including rotation and translation for the feature points to account for the position changes at each image frame.
Traditional approaches for determining the global rotation and translation of an object from a video sequence, however often produced unstable tracking performance. When feature points were incorrectly identified over a series of image frames, the tracked targets would appear to drift away from their true locations over time. In some instances, the tracked targets would be lost completely. Various techniques such as linear and nonlinear Kalman filtering were implemented in order to improve tracking results. Kalman filtering used historical information associated with past movement of feature points to predict present rotational and translational movement of the feature points. However, in instances where feature points were incorrectly identified, Kalman filtering often accelerated the undesirable drifting result instead of correcting it.
Thus, what is needed is a method and apparatus for efficiently and effectively tracking feature points.